//! \file GuiError.h
//! \brief TODO: Document
// -----------------------------------------------------------------------------
//! This program is free software; you can redistribute it and/or
//! modify it under the terms of the GNU General Public License
//! as published by the Free Software Foundation; either version 2
//! of the License, or (at your option) any later version.
//!
//! This program is distributed in the hope that it will be useful,
//! but WITHOUT ANY WARRANTY; without even the implied warranty of
//! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//! GNU General Public License for more details.
//!
//! You should have received a copy of the GNU General Public License
//! along with this program; if not, write to the Free Software Foundation,
//! Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
// -----------------------------------------------------------------------------
#ifndef dGUI_ERROR_H_
#define dGUI_ERROR_H_

//#ifdef __cplusplus
//extern "C"
//{
//#endif

namespace GUI {

  // ===========================================================================
  //! \typedef tERROR
  //! \brief TODO: document
  // ---------------------------------------------------------------------------
  typedef unsigned int tERROR;

//  // =====[ Generic Errors ]====================================================
//  #define dNO_ERROR                                               (tERROR)0
//  #define dERROR_INVALID_ARGUMENT                                 (tERROR)1
//
//  // =====[ Core Errors ]======================================================
//  #define dERROR_CORE_BAD                                         (tERROR)50
//  #define dERROR_CORE_UNABLE_TO_CREATE_THREAD                     (tERROR)51
//  #define dERROR_CORE_UNABLE_TO_JOIN_THREAD                       (tERROR)52

// TODO: remove after relocating
  // =====[ SDL Errors ]========================================================
  #define dERROR_SDL_START_FAILED                                 (tERROR)100
  #define dERROR_SDL_IMAGE_CREATION                               (tERROR)101
  #define dERROR_SDL_THREAD_CREATION                              (tERROR)102
  #define dERROR_SDL_SURFACE_CREATION                             (tERROR)103

  // =====[ Database Errors ]===================================================
  #define dERROR_DB_FAILED_TO_START                               (tERROR)200

  // =====[ User Interface Errors ]=============================================
  #define dERROR_UI_DISPLAY_FAILED_TO_START                       (tERROR)300

} // namespace Core

//#ifdef __cplusplus
//}
//#endif

#endif // dGUI_ERROR_H_
